﻿#include <graphics.h>		// 引用图形库头文件
#include <conio.h>
#include <stdio.h>
#include "chip8.h"
#include <stdlib.h>
#include <time.h>


void chip8_debug_show(const char* _meg, unsigned short _opcode)
{
	printf("%s\r\n", _meg);
	printf("opcode = %d", _opcode);
}
int chip8_rand()
{
	// 初始化随机数生成器
	srand(time(0)); // 使用当前时间作为种子，这样每次运行程序时都会得到不同的随机数序列

	// 生成一随机整数
	return rand() ;
}

int main()
{
	// 创建绘图窗口，大小为 640x320 像素
	initgraph(640, 480, EX_SHOWCONSOLE);	

	//_getch();				// 按任意键继续

	//closegraph();			// 关闭绘图窗口

		// BeginBatchDraw();

	setlinecolor(BLACK);
	setfillcolor(WHITE);

	//solidrectangle(5,5,100,10);

	//_getch();				// 按任意键继续

	//closegraph();			// 关闭绘图窗口

	CHIP8 chip8;
	
	initialize(&chip8);
	chip8.operation_debug = chip8_debug_show;
	chip8.operation_rand = chip8_rand;
	do
	{
		emulateCycle(&chip8);
		if (chip8.drawFlag)
		{
			BeginBatchDraw();
			cleardevice();
			for (size_t i = 0; i < 32; i++)
			{
				for (size_t j = 0; j < 64; j++)
				{
					if (chip8.gfx[64*i+j] == 1)
					{
						solidrectangle(j*10, i*10, j * 10+10, i * 10+10);
					}
					
				}
				
			}

			
			FlushBatchDraw();
			EndBatchDraw();

		}
	} while (true);

	return 0;
}
